#ifndef TOKEN_H
#define TOKEN_H

typedef enum enumTokens
{

  TOK_ID=0,      // identifikator
  TOK_FUNC,        // funkce (pouze pro syntax. analyzu)
  TOK_SEMI,       // ;
  TOK_COMMA,           // ,
  /*klicova slova:*/
  TOK_MAIN,
  TOK_DO,
  TOK_ELSE,
  TOK_ENDSEMI, // end;    testujeme i strednik, nikdy se nevyskytuje "end" bez ";"
  TOK_FALSE,
  TOK_FUNCTION,
  TOK_IF,
  TOK_LOCAL,
  TOK_NIL,
  TOK_READ,
  TOK_RETURN,
  TOK_THEN,
  TOK_TEST,
  TOK_TRUE,
  TOK_WHILE,
  TOK_WRITE,

  TOK_OTHERKEYWORDS,
  /*and, break, elseif, for, in, not, or, repeat, until    */
  //formaty pro read
  TOK_FORM_A,   // Tohle na konec budu delat, protoze to bude pro mne tezke :)
  TOK_FORM_L,
  TOK_FORM_N,
  TOK_NUMBER,

  TOK_PLUS,        // znamenko +
  TOK_MINUS,           //          -
  TOK_MULT,        //          *
  TOK_DIV,          //          /
  TOK_LESS,            //          <
  TOK_LESSQ,          //          <=
  TOK_GREAT,           //          >
  TOK_GREATQ,         //          >=
  TOK_EQ,           //          ==
  TOK_NEQ,        //           ~=
  TOK_ASSIGN,          //          =
  TOK_POWER,          //          ^
  TOK_CONCAT,          //          .. konkatenace

  TOK_LBRACKET,     // (
  TOK_RBRACKET,    // )



  TOK_EOF              // konec souboru
} TenumTokens;


// struktura tokenu
typedef struct Token
{
  TenumTokens  Type;     // typ tokenu
  char        *pData;     // data token
} TToken;

TToken Token;

#endif
